import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class day_01_stream_6 {
    public static void main(String[] args) {
        class Actor {
            private String name;
            private Integer age;

            public Actor(String name, Integer age) {
                this.name = name;
                this.age = age;
            }

            @Override
            public String toString() {
                return "Actor [name=" + name + ", age=" + age + "]";
            }
        }
        /*
         * 现在有两个ArrayList集合，
         * 第一个集合中：存储6名男演员的名字和年龄。第二个集合中：存储6名女演员的名字和年龄。
         * 姓名和年龄中间用逗号隔开。比如：张三，23
         * 要求完成如下的操作：
         * 1，男演员只要名字为3个字的前两人
         * 2，女演员只要姓杨的，并且不要第一个
         * 3，把过滤后的男演员姓名和女演员姓名合并到一起
         * 4，将上一步的演员信息封装成Actor对象。
         * 5，将所有的演员对象都保存到List集合中。
         * 备注：演员类Actor，属性有：name，age
         */

        // 1.创建集合
        ArrayList<String> manActorList = new ArrayList<>();
        Collections.addAll(manActorList, "龚汉强，21", "王林林，22", "谢彪，21", "宋冕豪，23", "王欣，22", "杨光，23");

        ArrayList<String> womenActorList = new ArrayList<>();
        Collections.addAll(womenActorList, "胡馨予，21", "赵小颖，35", "杨颖，36", "张天天，31", "刘诗，35", "杨小幕，33");

        // 2.过滤
        List<String> newManActorList = manActorList.stream()
                .filter(s -> Integer.valueOf(s.split("，")[0].length()) == 3)
                .limit(2)
                .collect(Collectors.toList());
        System.out.println(newManActorList);

        List<String> newWomenActorList = womenActorList.stream()
                .filter(s -> s.split("，")[0].startsWith("杨"))
                .skip(1)
                .collect(Collectors.toList());
        System.out.println(newWomenActorList);

        // 合并
        List<Actor> actor = Stream.concat(newManActorList.stream(), newWomenActorList.stream())
                .map(s -> new Actor(s.split("，")[0], Integer.parseInt(s.split("，")[1])))
                .collect(Collectors.toList());
        System.out.println(actor);
    }
}
